Address systems, such as Dynamic Host Configuration Protocol (DHCP) servers, manage the assignment of network addresses to elements connected to communication networks. The network elements may be personal computing devices, servers, routers, or any other type of network connected device. Each network element uses their assigned address to exchange communications with other network elements. Once a network address is assigned to an element (sometimes referred to as giving the element a lease on the address), the address has a lifetime in which the address can be used before it needs to be replaced or renewed (i.e. the element's lease on the address is renewed).
As with the initial address assignment to the network element, the address server handles whether the address should be renewed for the network element or should be replaced with a new address. Thus, if the address server becomes unavailable to the network element, then the network element may not be able to renew its current address or receive a new address before the lifetime of its current address is reached. In those situations, the network element will have to release its network address upon elapsing of the address' lifetime, which renders the network element unable to exchange communications until a new address is assigned.
Overview
Embodiments disclosed herein provide systems, methods, and computer readable media for extending the lifetime of a network address when an address system is unavailable. In a particular embodiment, a method provides, upon determining that a first network address for a network element has reached a preferred lifetime for the first network address, transitioning the network element to an extended rebind state that allows the first network address to remain in the preferred state. While the network element is in the extended rebind state, the method provides attempting to contact an address system and determining whether a second network element is assigned the first network address. The method further provides maintaining the first network address in the preferred state and the network element in the extended rebind state until contact is made with the address system or the second network element is determined to be assigned the first network address.
In some embodiments, upon contacting the address system, the method provides receiving a renewal of the first address from the address system and, responsively, transitioning the network element from the extended rebind state back to a bound state and renewing the designated lifetime of the first network address.
In some embodiments, upon contacting the address system, the method provides receiving a second address from the address system and, after receiving the second address, transitioning the first network address to a deprecated state.
In some embodiments, the method provides releasing the first network address upon determining that the first network address has reached a valid lifetime for the first network address.
In some embodiments, upon determining that the second network element is assigned the first network address, the method provides transitioning the network element to a stopped state wherein the first network address cannot be used for initiating communications by the network element.
In some embodiments, upon determining that the second network element is assigned the first network address, the method provides transferring at least one release message to the address system and, upon not receiving a reply to the at least one release message, releasing the first network address.
In some embodiments, the address system comprises a Dynamic Host Configuration Protocol version 6 (DHCPv6) server and attempting to contact the address system comprises transferring a DHCPv6 solicit request.
In some embodiments, the designated lifetime comprises a preferred lifetime and before the first network address exceeds the preferred lifetime, the method provides transferring a DHCPv6 renew request to the address system and, upon not receiving a response to the DHCPv6 renew request, transferring a DHCPv6 rebind request.
In some embodiments, upon receiving a response to the renew request indicating that the first network address is renewed, the method provides resetting the preferred lifetime of the first network address.
In some embodiments, determining whether the second network element is assigned the first network address comprises performing an Internet Protocol version 6 (IPv6) neighbor discovery based duplicate address detection algorithm.
In another embodiment, a network element that allows for the extension of a network address lifetime is provided having one or more computer readable storage media and a processing system operatively coupled with the one or more computer readable storage media. Program instructions stored on the one or more computer readable storage media, when read and executed by the processing system, direct the processing system to, upon determining that a first network address for the network element has reached a designated lifetime for a preferred state of the first network address, transitioning the network element to an extended rebind state that allows the first network address to remain in the preferred state. While the network element is in the extended rebind state, the program instructions direct the processing system to attempt to contact an address system and determine whether a second network element is assigned the first network address. The program instructions further direct the processing system to maintain the first network address in the preferred state and the network element in the extended rebind state until contact is made with the address system or the second network element is determined to be assigned the first network address.